package licode.unisop.client.visit;

import licode.unisop.client.info.*;
import licode.unisop.client.vo.SopAuthContext;
import licode.unisop.client.vo.SopAuthResult;
import licode.unisop.client.vo.SopAuthUser;
import licode.unisop.client.vo.SopCredential;

/**
 * APP认证接口定义
 *
 * @author WR
 */
public interface UserAuthVisit {
   SopAuthUser token(SopCodeInfo codeInfo);
   void fillAuthInfo(SopAuthContext context);
   void handlePlatformInfo(SopAuthContext context);
   SopAuthUser login(SopAuthIn authIn);
   SopAuthUser loginDirect(SopAuthDirectIn authIn);
   SopAuthResult authorize(SopAuthIn authIn);
   SopAuthResult authorizeDirect(SopAuthDirectIn authIn);
   String renewPlatform(SopPlatHeartInfo req);
   SopCredential refresh();
   void logout();
   void logoutUser(SopUserIdIn req);
   void logoutSession();
}
